package br.com.estevam.sisfin.daos;

import java.util.Date;

import org.apache.tapestry5.hibernate.HibernateSessionManager;
import org.apache.tapestry5.services.ApplicationStateManager;
import org.hibernate.Criteria;

import br.com.estevam.sisfin.daos.interfaces.UsuarioDAO;
import br.com.estevam.sisfin.entities.Usuario;
import br.com.estevam.sisfin.tools.Encrypt;

public class UsuarioDAOImpl extends AbstractDAOImpl implements UsuarioDAO {
	
	public UsuarioDAOImpl(HibernateSessionManager hsm, ApplicationStateManager asm){
		super(hsm, asm, Usuario.class);
		executarCriarUsuario();
	}

	public Usuario findUsuarioByLogin(String login) {
		Criteria c = createCriteria();
		c = addEqRestriction(c, "login", login);
		return (Usuario) c.uniqueResult();
	}
	
	void executarCriarUsuario(){
		if(rowCountAll() == 0){
			add(new Usuario("admin",Encrypt.encryptMD5("admin"),"Administrador","admin@localhost", new Date(), true));
			commit();
		}
	}

}
